package com.qikux.utils;

import javax.servlet.http.Part;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
import java.util.UUID;

public class UploadUtils {

    private static final Properties p = new Properties();

    static {
        try {
            p.load(UploadUtils.class.getClassLoader().getResourceAsStream("upload.properties"));
        } catch (IOException e) {
            throw new ExceptionInInitializerError(e);
        }
    }

    /**
     * 获取 上传的 文件对象
     * @param suffix
     * @param filename
     * @return
     */
    public static File uploadFile(String suffix, String filename) {
        return new File(p.getProperty("upload.dir") + suffix , filename);
    }
    /**
     *
     * @param part 上传的文件对象
     * @param suffix  : 存储的路径后缀    D:/servletUpload/UPLOAD_PHOTO
     * @return
     */
    public static String upload(Part part , String suffix) throws IOException {
        File parent = new File(p.getProperty("upload.dir") + suffix);
        if (!parent.exists()) parent.mkdirs() ;

        // 随机生成一个 UUID ，作为 文件的名字
        String uuid = UUID.randomUUID().toString() ;
        // 获取 上传文件的 名字，并截取到 后缀名
        String filename = part.getSubmittedFileName();

        // 将文件名 和 UUID 进行拼接，形成 新的 文件名，并作为存储的名字
        String uploadName = uuid + filename ;

        // 将上传的文件进行存储
        part.write(new File(parent, uploadName).getAbsolutePath());
        // 返回 拼接后的 文件名
        return uploadName ;
    }
}
